OLE v konzolovej aplikacii - este raz

Otázka od: Brano

13. 10. 2004 12:44

zdravim vsetkych,

este raz a kompletne...

potreboval by som v Delphi konzolovej aplikacii nacitat udaje z xls
excelovskeho suboru.
Program je asi:

{$APPTYPE CONSOLE}
uses
 SysUtils, Variants, ComObj;
var
 ExcelApp: Variant;
begin
 try
   ExcelApp:=CreateOleObject('Excel.Application');
   ^
tu dojde k vynimke EOLESysError, Delphi IDE da asi takuto chybovu hlasku:

Debugger Exception Notification
Project raised exception class EOleSysError with message
'CoInitialize
has not been called'...

Rovnaky postup v normalnej oknovej aplikacii funguje bez chyb.

Vdaka

Brano



Odpovedá: Karel Kral

13. 10. 2004 12:47

A co kdybys napred zavolal to CoInitialize, jak ti radi ta chybova
zprava? V ConsoleApp se to nevola automaticky.

Brano napsal(a):

> zdravim vsetkych,
>
> este raz a kompletne...
>
> potreboval by som v Delphi konzolovej aplikacii nacitat udaje z xls
> excelovskeho suboru.
> Program je asi:
>
> {$APPTYPE CONSOLE}
> uses
> SysUtils, Variants, ComObj;
> var
> ExcelApp: Variant;
> begin
> try
> ExcelApp:=CreateOleObject('Excel.Application');
> ^
> tu dojde k vynimke EOLESysError, Delphi IDE da asi takuto chybovu hlasku:
>
> Debugger Exception Notification
> Project raised exception class EOleSysError with message
'CoInitialize
> has not been called'...
>
> Rovnaky postup v normalnej oknovej aplikacii funguje bez chyb.
>
> Vdaka
>
> Brano



--
______________________________________________________
Karel Kral, vedouci odd. IT / IT manager
Purus, s.r.o., Cezavy 627, 664 56 Blucina, CZ
Tel: 547 235 000, 602 552 432, Fax: 547 231 203
E-Mail: mailto:kral@purus.cz, WWW: http://www.purus.cz
______________________________________________________


Odpovedá: Ales Pavel

13. 10. 2004 20:41


>Brano napsal:
>
>
>este raz a kompletne...
>potreboval by som v Delphi konzolovej aplikacii nacitat udaje z xls

>>excelovskeho suboru.
>>Program je asi:
>>{$APPTYPE CONSOLE}
>>uses
>> SysUtils, Variants, ComObj;
>>var
>> ExcelApp: Variant;
>>begin
>>try
>> ExcelApp:=CreateOleObject('Excel.Application');
>>tu dojde k vynimke EOLESysError, Delphi IDE da asi takuto chybovu hlasku:
>>Debugger Exception Notification
>>Project raised exception class EOleSysError with message
'CoInitialize
>>has not been called'...
>
>

Aldik na to:

Vzdyt ti to tam pise musis volat fci OLEInitialize nebo tak nejak se ta
fce jmenuje a na konci to i patricne uvolnit.

Pochopil jsem to tak ze se alokuje prostor pro pouziti ole objektu v
programu, ale je to jen muj dohad.

Brano napsal:

>Rovnaky postup v normalnej oknovej aplikacii funguje bez chyb.


Aldik na to:

>Tak si to vola tusim application.initializacion
>
>
dokonce bys tam i zarucene dohledal pouziti.


Aldik